package com.w7vm.menuweb.facade;

import java.util.List;
import java.util.Set;

import javax.ejb.Remote;

import com.w7vm.menuweb.entity.RestauranteEstruturaSy;
import com.w7vm.menuweb.entity.RestauranteFilialEnderecoWeb;
import com.w7vm.menuweb.entity.RestauranteFilialInfraestruturaWeb;
import com.w7vm.menuweb.entity.RestauranteFilialWeb;
import com.w7vm.menuweb.entity.RestauranteSedeEnderecoWeb;
import com.w7vm.menuweb.entity.RestauranteSedeInfraestruturaWeb;
import com.w7vm.menuweb.entity.RestauranteSedeWeb;
import com.w7vm.menuweb.vo.EnderecoVO;
import com.w7vm.menuweb.vo.RestauranteVO;

@Remote
public interface RestauranteFilialFacade {

	// Operacao CRUD
	public abstract List<RestauranteFilialWeb> findFilialByIDMatriz(int idRestaurante);
	public RestauranteFilialWeb saveRestauranteFilial(RestauranteFilialWeb entity);
	public RestauranteFilialEnderecoWeb saveEnderecoFilial(RestauranteFilialEnderecoWeb entity);
	public RestauranteFilialInfraestruturaWeb saveInfraFilial(RestauranteFilialInfraestruturaWeb entity);
	public abstract RestauranteFilialWeb findRestauranteFilialByID(int idRestaurante);
	public abstract RestauranteFilialWeb updateRestauranteFilial(RestauranteFilialWeb filialEntity);
	public List<RestauranteFilialWeb> findRestauranteFilialByCNPJ(String cnpj);
	public abstract void deleteRestauranteFilial(RestauranteFilialInfraestruturaWeb infraOjb);
	
	// Operação SET VO
	public abstract RestauranteVO setRestauranteFilialVO(RestauranteFilialWeb filialEntity);
	public abstract EnderecoVO setRestauranteFilialEnderecoVO(RestauranteFilialWeb filialEntity);
	public abstract Set<RestauranteEstruturaSy>  setRestauranteFilialEstruturaVO(RestauranteFilialWeb filialEntity);

	// Operação SET ENTITY
	public abstract RestauranteFilialWeb setRestauranteFilialEntity(RestauranteVO restauranteVO,RestauranteFilialWeb filialEntity);
	public abstract RestauranteFilialEnderecoWeb setRestauranteFilialEnderecoEntity(EnderecoVO enderecoVO);
	public abstract Set<RestauranteFilialInfraestruturaWeb> setRestauranteFilialInfraestruturaEntity(List<RestauranteEstruturaSy> estruturaPickerView,
			RestauranteFilialWeb restObj);


}
